#!/bin/bash

# 导航服务 DMG 创建脚本
# 用于创建 macOS 安装包

set -e

APP_NAME="NavigationService"
DMG_NAME="NavigationService-1.0.0"
VOLUME_NAME="导航服务"
DMG_DIR="dmg_build"
DMG_TEMP_DIR="$DMG_DIR/temp"
DMG_FINAL_DIR="$DMG_DIR/final"

echo "开始创建 NavigationService DMG 文件..."

# 清理旧的构建文件
echo "清理旧的构建文件..."
rm -rf "$DMG_DIR"
rm -f "${DMG_NAME}.dmg"

# 创建必要的目录
mkdir -p "$DMG_TEMP_DIR"
mkdir -p "$DMG_FINAL_DIR"

# 复制应用程序到临时目录
echo "复制应用程序包..."
cp -R "${APP_NAME}.app" "$DMG_TEMP_DIR/"

# 创建应用程序的符号链接
echo "创建应用程序符号链接..."
ln -s /Applications "$DMG_TEMP_DIR/Applications"

# 创建 README 文件
cat > "$DMG_TEMP_DIR/README.txt" << 'EOF'
欢迎使用导航服务！

安装说明：
1. 将 NavigationService.app 拖拽到 Applications 文件夹
2. 双击 NavigationService.app 启动服务
3. 在浏览器中访问 http://localhost:8080

卸载说明：
1. 将 NavigationService.app 从 Applications 文件夹中删除
2. 删除 ~/Library/Application Support/NavigationService 目录（如果存在）

系统要求：
- macOS 10.15 或更高版本
- 支持 ARM64 架构的 Mac（M1/M2/M3 芯片）

技术支持：
如有问题，请查看项目文档或联系技术支持。

版本：1.0.0
版权：© 2024 Navigation Service
EOF

# 创建 DMG
echo "创建 DMG 文件..."
hdiutil create -srcfolder "$DMG_TEMP_DIR" -volname "$VOLUME_NAME" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -size 100m "$DMG_FINAL_DIR/${DMG_NAME}-temp.dmg"

# 挂载 DMG
echo "挂载 DMG 进行配置..."
MOUNT_DIR="/Volumes/$VOLUME_NAME"
hdiutil attach "$DMG_FINAL_DIR/${DMG_NAME}-temp.dmg" -readwrite -noverify -noautoopen

# 设置 DMG 窗口属性
echo "配置 DMG 窗口..."
osascript << EOF
tell application "Finder"
    tell disk "$VOLUME_NAME"
        open
        set current view of container window to icon view
        set toolbar visible of container window to false
        set statusbar visible of container window to false
        set the bounds of container window to {400, 100, 900, 400}
        set theViewOptions to the icon view options of container window
        set arrangement of theViewOptions to not arranged
        set icon size of theViewOptions to 128
        set background picture of theViewOptions to file ".background:background.png"
        make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
        set position of item "NavigationService.app" of container window to {150, 200}
        set position of item "Applications" of container window to {350, 200}
        set position of item "README.txt" of container window to {550, 200}
        close
        open
        update without registering applications
        delay 2
    end tell
end tell
EOF

# 创建背景图片（简单的纯色背景）
echo "创建背景图片..."
mkdir -p "$MOUNT_DIR/.background"
# 使用 sips 创建背景图片
sips -s format png -z 300 600 -s formatOptions 70 --setProperty format png --setProperty formatOptions 70 /System/Library/Desktop\ Pictures/Solid\ Colors/Solid\ Gray\ Pro\ Ultra\ Dark.png --out "$MOUNT_DIR/.background/background.png" 2>/dev/null || echo "使用默认背景"

# 设置文件权限
echo "设置文件权限..."
chmod -Rf 755 "$MOUNT_DIR/NavigationService.app"
chmod 644 "$MOUNT_DIR/README.txt"

# 卸载 DMG
echo "卸载 DMG..."
hdiutil detach "$MOUNT_DIR"

# 转换为最终格式
echo "转换为最终 DMG 格式..."
hdiutil convert "$DMG_FINAL_DIR/${DMG_NAME}-temp.dmg" -format UDZO -imagekey zlib-level=9 -o "$DMG_FINAL_DIR/${DMG_NAME}.dmg"

# 移动最终文件
mv "$DMG_FINAL_DIR/${DMG_NAME}.dmg" ./

# 清理临时文件
echo "清理临时文件..."
rm -rf "$DMG_DIR"

echo ""
echo "✅ DMG 创建完成！"
echo "文件：${DMG_NAME}.dmg"
echo "大小：$(du -h "${DMG_NAME}.dmg" | cut -f1)"
echo ""
echo "DMG 文件已准备好分发！"
